/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.devmng.entity;

import com.google.common.collect.Lists;
import com.thinkgem.jeesite.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * 检修项Entity
 *
 * @author panda
 * @version 2017-12-02
 */
public class DevchkItem extends DataEntity<DevchkItem> {

    private static final long serialVersionUID = 1L;
    private String checkPeriod;        // 检修周期，年、月、日、季度
    private String checkContent;        // 检修内容
    private String checkStd;        // 检修标准
    private String checkMethod;        // 检修方法
    private DeviceMain deviceMain;        // 设备
    private Integer sortNum;        // 排序值
    private String meature; // 测量值类型，noneMeature-无，singleMeature-单个测量值，multiMeature-多个测量值

    private List<DevchkAnswer> devchkAnswers = Lists.newArrayList();

    private String singleMeatureContentDesc; // 单个测量值内容描述
    private String singleMeatureUnitCode; // 单个测量值测量单位
    private BigDecimal minValue; // 单个测量值范围
    private BigDecimal maxValue;

    private String multiMeatureContentDesc1; // 多个测量值内容描述
    private String multiMeatureContentDesc2;
    private String multiMeatureContentDesc3;
    private String multiMeatureContentDesc4;
    private String multiMeatureContentDesc5;
    private String multiMeatureContentDesc6;
    private String multiMeatureContentDesc7;
    private String multiMeatureContentDesc8;
    private String multiMeatureContentDesc9;
    private String multiMeatureContentDesc10;

    private String multiMeatureUnitCode1; // 多个测量值测量单位
    private String multiMeatureUnitCode2;
    private String multiMeatureUnitCode3;
    private String multiMeatureUnitCode4;
    private String multiMeatureUnitCode5;
    private String multiMeatureUnitCode6;
    private String multiMeatureUnitCode7;
    private String multiMeatureUnitCode8;
    private String multiMeatureUnitCode9;
    private String multiMeatureUnitCode10;

    private BigDecimal minValue1;
    private BigDecimal maxValue1;
    private BigDecimal minValue2;
    private BigDecimal maxValue2;
    private BigDecimal minValue3;
    private BigDecimal maxValue3;
    private BigDecimal minValue4;
    private BigDecimal maxValue4;
    private BigDecimal minValue5;
    private BigDecimal maxValue5;
    private BigDecimal minValue6;
    private BigDecimal maxValue6;
    private BigDecimal minValue7;
    private BigDecimal maxValue7;
    private BigDecimal minValue8;
    private BigDecimal maxValue8;
    private BigDecimal minValue9;
    private BigDecimal maxValue9;
    private BigDecimal minValue10;
    private BigDecimal maxValue10;

    public DevchkItem() {
        super();
    }

    public DevchkItem(String id) {
        super(id);
    }

    @Length(min = 1, max = 10, message = "检修周期，年、月、日、季度长度必须介于 1 和 10 之间")
    public String getCheckPeriod() {
        return checkPeriod;
    }

    public void setCheckPeriod(String checkPeriod) {
        this.checkPeriod = checkPeriod;
    }

    @Length(min = 1, max = 500, message = "检修内容长度必须介于 1 和 500 之间")
    public String getCheckContent() {
        return checkContent;
    }

    public void setCheckContent(String checkContent) {
        this.checkContent = checkContent;
    }

    @Length(min = 1, max = 500, message = "检修标准长度必须介于 1 和 500 之间")
    public String getCheckStd() {
        return checkStd;
    }

    public void setCheckStd(String checkStd) {
        this.checkStd = checkStd;
    }

    @Length(min = 1, max = 500, message = "检修方法长度必须介于 1 和 500 之间")
    public String getCheckMethod() {
        return checkMethod;
    }

    public void setCheckMethod(String checkMethod) {
        this.checkMethod = checkMethod;
    }

    @NotNull(message = "设备不能为空")
    public DeviceMain getDeviceMain() {
        return deviceMain;
    }

    public void setDeviceMain(DeviceMain deviceMain) {
        this.deviceMain = deviceMain;
    }

    @NotNull(message = "排序值不能为空")
    public Integer getSortNum() {
        return sortNum;
    }

    public void setSortNum(Integer sortNum) {
        this.sortNum = sortNum;
    }

    public List<DevchkAnswer> getDevchkAnswers() {
        return devchkAnswers;
    }

    public void setDevchkAnswers(List<DevchkAnswer> devchkAnswers) {
        this.devchkAnswers = devchkAnswers;
    }

    public String getMeature() {
        return meature;
    }

    public void setMeature(String meature) {
        this.meature = meature;
    }

    public String getSingleMeatureContentDesc() {
        return singleMeatureContentDesc;
    }

    public void setSingleMeatureContentDesc(String singleMeatureContentDesc) {
        this.singleMeatureContentDesc = singleMeatureContentDesc;
    }

    public String getSingleMeatureUnitCode() {
        return singleMeatureUnitCode;
    }

    public void setSingleMeatureUnitCode(String singleMeatureUnitCode) {
        this.singleMeatureUnitCode = singleMeatureUnitCode;
    }

    public String getMultiMeatureContentDesc1() {
        return multiMeatureContentDesc1;
    }

    public void setMultiMeatureContentDesc1(String multiMeatureContentDesc1) {
        this.multiMeatureContentDesc1 = multiMeatureContentDesc1;
    }

    public String getMultiMeatureContentDesc2() {
        return multiMeatureContentDesc2;
    }

    public void setMultiMeatureContentDesc2(String multiMeatureContentDesc2) {
        this.multiMeatureContentDesc2 = multiMeatureContentDesc2;
    }

    public String getMultiMeatureContentDesc3() {
        return multiMeatureContentDesc3;
    }

    public void setMultiMeatureContentDesc3(String multiMeatureContentDesc3) {
        this.multiMeatureContentDesc3 = multiMeatureContentDesc3;
    }

    public String getMultiMeatureContentDesc4() {
        return multiMeatureContentDesc4;
    }

    public void setMultiMeatureContentDesc4(String multiMeatureContentDesc4) {
        this.multiMeatureContentDesc4 = multiMeatureContentDesc4;
    }

    public String getMultiMeatureContentDesc5() {
        return multiMeatureContentDesc5;
    }

    public void setMultiMeatureContentDesc5(String multiMeatureContentDesc5) {
        this.multiMeatureContentDesc5 = multiMeatureContentDesc5;
    }

    public String getMultiMeatureContentDesc6() {
        return multiMeatureContentDesc6;
    }

    public void setMultiMeatureContentDesc6(String multiMeatureContentDesc6) {
        this.multiMeatureContentDesc6 = multiMeatureContentDesc6;
    }

    public String getMultiMeatureUnitCode1() {
        return multiMeatureUnitCode1;
    }

    public void setMultiMeatureUnitCode1(String multiMeatureUnitCode1) {
        this.multiMeatureUnitCode1 = multiMeatureUnitCode1;
    }

    public String getMultiMeatureUnitCode2() {
        return multiMeatureUnitCode2;
    }

    public void setMultiMeatureUnitCode2(String multiMeatureUnitCode2) {
        this.multiMeatureUnitCode2 = multiMeatureUnitCode2;
    }

    public String getMultiMeatureUnitCode3() {
        return multiMeatureUnitCode3;
    }

    public void setMultiMeatureUnitCode3(String multiMeatureUnitCode3) {
        this.multiMeatureUnitCode3 = multiMeatureUnitCode3;
    }

    public String getMultiMeatureUnitCode4() {
        return multiMeatureUnitCode4;
    }

    public void setMultiMeatureUnitCode4(String multiMeatureUnitCode4) {
        this.multiMeatureUnitCode4 = multiMeatureUnitCode4;
    }

    public String getMultiMeatureUnitCode5() {
        return multiMeatureUnitCode5;
    }

    public void setMultiMeatureUnitCode5(String multiMeatureUnitCode5) {
        this.multiMeatureUnitCode5 = multiMeatureUnitCode5;
    }

    public String getMultiMeatureUnitCode6() {
        return multiMeatureUnitCode6;
    }

    public void setMultiMeatureUnitCode6(String multiMeatureUnitCode6) {
        this.multiMeatureUnitCode6 = multiMeatureUnitCode6;
    }

    public String getMultiMeatureContentDesc7() {
        return multiMeatureContentDesc7;
    }

    public void setMultiMeatureContentDesc7(String multiMeatureContentDesc7) {
        this.multiMeatureContentDesc7 = multiMeatureContentDesc7;
    }

    public String getMultiMeatureContentDesc8() {
        return multiMeatureContentDesc8;
    }

    public void setMultiMeatureContentDesc8(String multiMeatureContentDesc8) {
        this.multiMeatureContentDesc8 = multiMeatureContentDesc8;
    }

    public String getMultiMeatureContentDesc9() {
        return multiMeatureContentDesc9;
    }

    public void setMultiMeatureContentDesc9(String multiMeatureContentDesc9) {
        this.multiMeatureContentDesc9 = multiMeatureContentDesc9;
    }

    public String getMultiMeatureContentDesc10() {
        return multiMeatureContentDesc10;
    }

    public void setMultiMeatureContentDesc10(String multiMeatureContentDesc10) {
        this.multiMeatureContentDesc10 = multiMeatureContentDesc10;
    }

    public String getMultiMeatureUnitCode7() {
        return multiMeatureUnitCode7;
    }

    public void setMultiMeatureUnitCode7(String multiMeatureUnitCode7) {
        this.multiMeatureUnitCode7 = multiMeatureUnitCode7;
    }

    public String getMultiMeatureUnitCode8() {
        return multiMeatureUnitCode8;
    }

    public void setMultiMeatureUnitCode8(String multiMeatureUnitCode8) {
        this.multiMeatureUnitCode8 = multiMeatureUnitCode8;
    }

    public String getMultiMeatureUnitCode9() {
        return multiMeatureUnitCode9;
    }

    public void setMultiMeatureUnitCode9(String multiMeatureUnitCode9) {
        this.multiMeatureUnitCode9 = multiMeatureUnitCode9;
    }

    public String getMultiMeatureUnitCode10() {
        return multiMeatureUnitCode10;
    }

    public void setMultiMeatureUnitCode10(String multiMeatureUnitCode10) {
        this.multiMeatureUnitCode10 = multiMeatureUnitCode10;
    }

    public BigDecimal getMinValue() {
        return minValue;
    }

    public void setMinValue(BigDecimal minValue) {
        this.minValue = minValue;
    }

    public BigDecimal getMaxValue() {
        return maxValue;
    }

    public void setMaxValue(BigDecimal maxValue) {
        this.maxValue = maxValue;
    }

    public BigDecimal getMinValue1() {
        return minValue1;
    }

    public void setMinValue1(BigDecimal minValue1) {
        this.minValue1 = minValue1;
    }

    public BigDecimal getMaxValue1() {
        return maxValue1;
    }

    public void setMaxValue1(BigDecimal maxValue1) {
        this.maxValue1 = maxValue1;
    }

    public BigDecimal getMinValue2() {
        return minValue2;
    }

    public void setMinValue2(BigDecimal minValue2) {
        this.minValue2 = minValue2;
    }

    public BigDecimal getMaxValue2() {
        return maxValue2;
    }

    public void setMaxValue2(BigDecimal maxValue2) {
        this.maxValue2 = maxValue2;
    }

    public BigDecimal getMinValue3() {
        return minValue3;
    }

    public void setMinValue3(BigDecimal minValue3) {
        this.minValue3 = minValue3;
    }

    public BigDecimal getMaxValue3() {
        return maxValue3;
    }

    public void setMaxValue3(BigDecimal maxValue3) {
        this.maxValue3 = maxValue3;
    }

    public BigDecimal getMinValue4() {
        return minValue4;
    }

    public void setMinValue4(BigDecimal minValue4) {
        this.minValue4 = minValue4;
    }

    public BigDecimal getMaxValue4() {
        return maxValue4;
    }

    public void setMaxValue4(BigDecimal maxValue4) {
        this.maxValue4 = maxValue4;
    }

    public BigDecimal getMinValue5() {
        return minValue5;
    }

    public void setMinValue5(BigDecimal minValue5) {
        this.minValue5 = minValue5;
    }

    public BigDecimal getMaxValue5() {
        return maxValue5;
    }

    public void setMaxValue5(BigDecimal maxValue5) {
        this.maxValue5 = maxValue5;
    }

    public BigDecimal getMinValue6() {
        return minValue6;
    }

    public void setMinValue6(BigDecimal minValue6) {
        this.minValue6 = minValue6;
    }

    public BigDecimal getMaxValue6() {
        return maxValue6;
    }

    public void setMaxValue6(BigDecimal maxValue6) {
        this.maxValue6 = maxValue6;
    }

    public BigDecimal getMinValue7() {
        return minValue7;
    }

    public void setMinValue7(BigDecimal minValue7) {
        this.minValue7 = minValue7;
    }

    public BigDecimal getMaxValue7() {
        return maxValue7;
    }

    public void setMaxValue7(BigDecimal maxValue7) {
        this.maxValue7 = maxValue7;
    }

    public BigDecimal getMinValue8() {
        return minValue8;
    }

    public void setMinValue8(BigDecimal minValue8) {
        this.minValue8 = minValue8;
    }

    public BigDecimal getMaxValue8() {
        return maxValue8;
    }

    public void setMaxValue8(BigDecimal maxValue8) {
        this.maxValue8 = maxValue8;
    }

    public BigDecimal getMinValue9() {
        return minValue9;
    }

    public void setMinValue9(BigDecimal minValue9) {
        this.minValue9 = minValue9;
    }

    public BigDecimal getMaxValue9() {
        return maxValue9;
    }

    public void setMaxValue9(BigDecimal maxValue9) {
        this.maxValue9 = maxValue9;
    }

    public BigDecimal getMinValue10() {
        return minValue10;
    }

    public void setMinValue10(BigDecimal minValue10) {
        this.minValue10 = minValue10;
    }

    public BigDecimal getMaxValue10() {
        return maxValue10;
    }

    public void setMaxValue10(BigDecimal maxValue10) {
        this.maxValue10 = maxValue10;
    }

    public enum CheckPeriod {
        Y, // 年
        M,  // 月
        HY, // 半年
        Q; // 季度
    }

    public enum Meature {
        noneMeature,
        singleMeature,
        multiMeature
    }
}